#include <cstdio>
#include <cstring>

int map[ 21 ][ 21 ], n, flag, cnt;
bool visit[ 21 ][ 21 ];

void dfs( int x, int y )
{
    if ( x < 0 || x >= n || y < 0 || y >= n ) return ;
    if ( map[ x ][ y ] == 0 && visit[ x ][ y ] ) return ;
    visit[ x ][ y ] = true;
    if ( map[ x ][ y ] == 0 )
    {
        cnt++;
        dfs( x + 1, y );
        dfs( x - 1, y );
        dfs( x, y + 1 );
        dfs( x, y - 1 );
    }
    if ( map[ x ][ y ] == 1 )
    {
        if ( flag == 0 ) flag = 1;
        if ( flag == 2 ) flag = 3;
    }
    if ( map[ x ][ y ] == 2 )
    {
        if ( flag == 0 ) flag = 2;
        if ( flag == 1 ) flag = 3;
    }
}

int main( )
{
    int i, j, b, w, u, v, ansb, answ;
    while ( scanf("%d", &n) && n )
    {
        scanf("%d%d", &b, &w);
        memset( map, 0, sizeof( map ) );
        for ( i = 0; i < b; i++ )
        {
            scanf("%d%d", &u, &v); u--; v--;
            map[ u ][ v ] = 1;
        }
        for ( i = 0; i < w; i++ )
        {
            scanf("%d%d", &u, &v); u--; v--;
            map[ u ][ v ] = 2;
        }
        memset( visit, 0, sizeof( visit ) );
        ansb = answ = 0;
        for ( i = 0; i < n; i++ )
            for ( j = 0; j < n; j++ )
                if ( !map[ i ][ j ] && !visit[ i ][ j ] )
                {
                    cnt = flag = 0;
                    dfs( i, j );
                    if ( flag == 1 ) ansb += cnt;
                    if ( flag == 2 ) answ += cnt;
                }
        if ( ansb < answ )
            printf("White wins by %d\n", answ - ansb);
        else if ( ansb == answ )
            puts("Draw");
        else
            printf("Black wins by %d\n", ansb - answ);
    }
    return 0;
}
